+2006-01-23 Michael Natterer <mitch@imendio.com>
+
+ * gtk/gtkcolorbutton.c: move destruction of the private GdkGC
+ from finalize() to unrealize(). Fixes BadMatch on display change
+ (bug #85715).
+
2006-01-22 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): Revert previous
+2006-01-23 Michael Natterer <mitch@imendio.com>
+
+ * gtk/gtkcolorbutton.c: move destruction of the private GdkGC
+ from finalize() to unrealize(). Fixes BadMatch on display change
+ (bug #85715).
+
2006-01-22 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): Revert previous
/* gtkwidget signals */
static void gtk_color_button_realize (GtkWidget *widget);
+static void gtk_color_button_unrealize (GtkWidget *widget);
static void gtk_color_button_state_changed (GtkWidget *widget,
GtkStateType previous_state);
static void gtk_color_button_style_set (GtkWidget *widget,
gobject_class->finalize = gtk_color_button_finalize;
widget_class->state_changed = gtk_color_button_state_changed;
widget_class->realize = gtk_color_button_realize;
+ widget_class->unrealize = gtk_color_button_unrealize;
widget_class->style_set = gtk_color_button_style_set;
button_class->clicked = gtk_color_button_clicked;
klass->color_set = NULL;
render (color_button);
}
+static void
+gtk_color_button_unrealize (GtkWidget *widget)
+{
+ GtkColorButton *color_button = GTK_COLOR_BUTTON (widget);
+
+ if (color_button->priv->gc)
+ g_object_unref (color_button->priv->gc);
+ color_button->priv->gc = NULL;
+
+ GTK_WIDGET_CLASS (parent_class)->unrealize (widget);
+}
+
static void
gtk_color_button_style_set (GtkWidget *widget,
GtkStyle *previous_style)
{
GtkColorButton *color_button = GTK_COLOR_BUTTON (object);
- if (color_button->priv->gc != NULL)
- g_object_unref (color_button->priv->gc);
- color_button->priv->gc = NULL;
-
if (color_button->priv->cs_dialog != NULL)
gtk_widget_destroy (color_button->priv->cs_dialog);
color_button->priv->cs_dialog = NULL;